1. Technical Field
This application relates to data storage and, in particular, to high performance data storage.
2. Related Art
A common storage protocol, SCSI (Small Computer System Interface), operates using a request/response model. To execute a read transaction, a SCSI initiator, such as a client machine, uses a physical interconnect to send an encoded buffer to a SCSI target, such as a storage device, indicating which storage block or storage blocks to read. The SCSI target then retrieves the requested data and responds with the result of the read operation. To execute a write request, the SCSI initiator uses the physical interconnect to send an encoded buffer to the SCSI target indicating which block or blocks to write. Once the associated data has been sent from the initiator to the target and the target has stored the data, the target responds with the result of the write operation.
The processing of SCSI's encoded read/write requests, along with any underlying protocol or protocols, can place significant demand on computational resources of the client machine and the storage device as the number of requested operations per second increases. Depending on the underlying physical interconnect and/or protocols, the transfer of read and/or write data may be managed by the initiator, the target, or both.